1489
467
Takže mám nějaké potíže s přijetím správného použití list :: sort (), pokud jde o seznam struktur. Zde je příslušný kód:
strukturovaný student
{
char firstnm [20],
lastnm [20];
int id,
školní známka;
};
list  sList;
// irelevantní kód ...
cout << "Zadejte své jméno, ID a známku. (Příklad: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (data);
sList.sort ();
Problém, který se snažím vyřešit, je použití sList.sort () k třídění podle id. Nemám však tušení, jak jej správně předat do list :: sort (). Předem děkujeme za jakoukoli pomoc / čas!
EDIT: Řešením bylo jednoduše přidat toto do mé struktury
bool operator <(const student & cmp) const {
návratové ID 
                                
Měli byste se podívat na std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Existuje několik definic této funkce a jedna, kde můžete určit, co chcete seřadit.
Podívejte se také na tento příspěvek, myslím, že je to to, co potřebujete: https://stackoverflow.com/a/21234017/6663947
Upravit :
to je příklad komparátoru:
sList.sort ([] (const student & a, const student & b) {return a.id 
void sort (Porovnat komp);
Za předpokladu, že chcete třídit studentské objekty ve vašem seznamu podle ID klíče ve vzestupném pořadí. Můžete buď definovat operator